/**
 * Copyright 2014 National University of Ireland, Galway.
 *
 * This file is part of the SIREn project. Project and contact information:
 *
 *  https://github.com/rdelbru/SIREn
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.sindice.siren.search.node;

/**
 * Abstraction over all the primitive {@link NodeQuery}s such as
 * {@link NodeTermQuery}.
 */
public abstract class NodePrimitiveQuery extends NodeQuery {

  protected String datatype = null;

  /**
   * Set the datatype associated with this query.
   */
  public void setDatatype(final String datatype) {
    this.datatype = datatype;
  }

  /**
   * Wraps the #toString output with the datatype query syntax
   */
  protected StringBuffer wrapToStringWithDatatype(final StringBuffer buffer) {
    if (datatype != null) {
      buffer.insert(0, datatype + "(");
      buffer.append(')');
    }
    return buffer;
  }

}
